/*
  学习目标：泛型约束-添加约束
  约束：指定更精准的范围
  作用：T捕获的是任意类型，缩窄类型范围，指定更精准的类型范围
  语法： < 占位符 extends 约束条件>
  理解：extends 🔔 理解为逻辑与或逻辑且  
*/

type ILength = {
  length: number;
};

function fn<T extends ILength>(value: T): T {
  console.log(value.length);
  return value;
}

fn('a');
